package hoaitt.vnu.edu;

import java.util.ArrayList;

import javax.swing.plaf.multi.MultiButtonUI; // Tính viết GUI hả :3

public class SumMultiples {
	// Biết xài biến , sao final, sao static hiểu được ko ? Hay thằng eclipse báo lỗi mới thêm static?
	//**final: la do o day thang LIMIT la hang so, no co dinh, k can thay doi nen can co final o truoc : Chuẩn
	//**static la do ham main la static. 1 method la static chi co the su dung dc bien la static : Đúng
	final static int LIMIT = 1000;
	// Sao đặt biết sum làm global
	//**Cai nay em lam luc dang nghi la class co bien va method.
	//** Bien la cai ma no biet. Ma sum la cai no can dc biet nen lam global :D
	int sum = 0; // Cái này ko cần global
	
	boolean checkMultiplesOfThree(int number) {
		boolean checker = false;
		
		if (number % 3 == 0) {
			checker = true;
		}
		
		return checker;
	}
	
	boolean checkMultiplesOfFive(int numberFive) {
		boolean check = false;
		
		if (numberFive % 5 == 0) {
			check = true;
		}
		return check;
	}
	// I don't get it?
	// 1. Tại sao return ArrayList<String> => Void thì sao
	// 2. Tại sao lại là <String> => Integer ko được à (lưu ý int và Integer khác nhau)
	// 3. Tại sao lại là ArrayList<> => Phụ thuộc quá nhiều đến nỗi code đơn giản cũng nghĩ ngay đến thư viện, 
	//    1 mảng int[] có phải dễ hơn không. Đây đề bài cho limit input rồi.
	// 4. Tại sao lại phải tách riêng ra một bước check và 1 bước tổng? => Trong khi đó check thì đơn giản (%) và 1 phép cộng.
	// Kết quả được, ý tưởng được, thực hiện kém: 6 điểm. :P >"<
	
	/**
	*1. Void cung dc, vi muc dich cua minh chi la tinh dc sum.
	* - Y tuong la day cac so la boi cua 3, 5 vao 1 mang; em dung ArrayList<String> de dung ham co san(add) cua no
	*2. Cai ni em chua biet :/. Tai dung String nhieu nen quen
	*3. Gio thi em biet roai :v
	*4. Chia nho de de sua loi voi de kiem tra tung cai. 
	* Biet dau co the mo rong cai nay, neu co, thi chi can viet them ham ma k anh huong den cac ham khac
	* Lạm dụng: Viết thêm hàm thế giờ nó bảo thêm cái chia hết cho 2, lại viết thêm 1 hàm
	* trong khi chỉ cần 1 cái if là đủ, cái nào hơn
	*/
	
	ArrayList<String> findMultiples(int limit) {
		ArrayList<String> temp = new ArrayList<>();
		
		for (int i = 0; i < limit; i++) {
			if (checkMultiplesOfFive(i) || checkMultiplesOfThree(i)) {
				temp.add(Integer.toString(i));
			}
		}
		
		for (int j = 0; j < temp.size(); j++) {
			if (Integer.parseInt(temp.get(j)) < LIMIT) {
				sum += Integer.parseInt((temp.get(j)));
			}
		}
		System.out.println("Size temp: "+ temp.size());
		System.out.println("Sum: "+sum);
		return temp;
		
	}
	
	public static void main(String [] arg) {
		SumMultiples test = new SumMultiples();
		
		test.findMultiples(LIMIT);
	}

}
